As a large-capacity storage medium, memory cards, such as compact flash cards (CF cards for short), secure digital memory cards (SD cards for short) and TransFlash cards (TF cards), have been used in many embedded devices. A memory card generally consists of a card controller and a Flash unit, wherein the Flash generally refers to a NAND Flash. The NAND Flash is limited in read/write times (that is, service life), which usually is about 10-100 thousand times. CF card is widely used in communication system devices having high requirement on stability. And SD card and TF card are widely used in portable devices.
A memory card is commonly used in the following way: using a certain kind of file system on the card, such as pHILE, file allocation table (FAT), FAT32, ext2, ext3 and the like, wherein FAT32 is the most widely used one. Software reads a memory card in the form of a file. With a capacity much smaller than a hard disc, a memory card generally has only one partition. This implement scheme can be easily managed but still has the following defects in some applications: (1) Many sections are read frequently during a file access process and are therefore damaged easily, for instance, in a FAT32 file system, the sectors located in a DOS boot record (DBR), FAT1, FAT2 and the directory region are read frequently and therefore most vulnerable to damage. A damage in a frequently-read sector will lead to a failed access to the memory card, which will make a single board run abnormally in an embedded device; (2) Due to the absence of a perfect alarm system, a system will be disabled once a memory card is damaged, leaving no time for maintenance personnel to deal with the problem.
In order to improve the error tolerance of a memory card and the robustness of a system, currently many solutions are provided. For example, (1) employ a backup single board. The backup single board will avoid the problem that a disabled single memory card on a board will disable the whole board in an embedded device, but at a high cost. (2) Use two memory cards on one single board. This solution, although lower in cost than the first solution, is till high in cost, considering the dimensions and the materials of two indispensable cards. Moreover, in this solution the current single boards with one memory card cannot be updated through software to achieve error tolerance protection. (3) Set access control on reading/writing certain key information fields of the file system or freezing certain information regions. Although this solution can reduce the frequency at which a key information region of a memory card is read/written and to reduce the damage probability of the memory card, but it is strictly limited in applications and therefore lacks universality. Moreover, due to the absence of a perfect assistant alarm mechanism, this solution makes no significant improvement in device maintainability.